package com.mioto.ld.module.alert.dao;

import com.mioto.ld.component.BasePager;
import com.mioto.ld.module.alert.model.AlertConfig;
import com.mioto.ld.module.alert.model.AlertConfigDetailVO;
import com.mioto.ld.module.alert.model.AlertConfigPagerVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;

/**
 *
 * @author mioto
 * @date 2024-05-20 23:49:39
 */
@Mapper
public interface AlertConfigDao{

    /**
     * 根据条件查询列表
     * @param alertConfig
     * @return
     */
    List<AlertConfig> findList(AlertConfig alertConfig);

    /**
     * 根据列名和对应的值查询对象
     * @param column
     * @param value
     * @return
     */
    AlertConfig findByColumn(@Param("column") String column,@Param("value") Object value);

    /**
     * 新增对象
     * @param alertConfig
     * @return
     */
    int insert(AlertConfig alertConfig);

    /**
     * 新增对象,忽略空值
     * @param alertConfig
     * @return
     */
    int insertIgnoreNull(AlertConfig alertConfig);

    /**
     * 修改对象
     * @param alertConfig
     * @return
     */
    int update(AlertConfig alertConfig);

    /**
     * 修改对象,忽略空值
     * @param alertConfig
     * @return
     */
    int updateIgnoreNull(AlertConfig alertConfig);

    /**
     * 根据列名和对应的值删除对象
     * @param column
     * @param value
     * @return
     */
    int deleteByColumn(@Param("column") String column,@Param("value") Object value);

    /**
     * 根据主键列表批量删除
     * @param ids
     * @return
     */
    int batchDelete(Integer[] ids);

    List<AlertConfigPagerVO> pager(@Param("alertConfig")AlertConfig alertConfig,@Param("pageNo") int pageNo,@Param("rows")int rows,@Param("userId") Integer userId);

    int findCount(@Param("alertConfig")AlertConfig alertConfig,@Param("userId") Integer userId);

    AlertConfigDetailVO findDetail(int id);

}